package com.bw.utils;

import cn.hutool.core.lang.Validator;

/**
 * 验证工具类
 **/
public class CheckUtil {

    /***
     * 验证是否是手机号
     * @param str
     * @return
     */
    public static boolean isMobile(String str){
        return  Validator.isMobile(str);
    }

    /***
     * 是否是中文
     * @param str
     * @return
     */
    public static boolean isChinese(String str){
        return Validator.isChinese(str);
    }

    /***
     * 是否是中文 且 验证长度是否在(start,end)之间
     * @param str
     * @return
     */
    public static boolean isChineseAndRange(String str,int start,int end){
        Boolean boo = CheckUtil.isChinese(str);
        if(!boo){
            return false;
        }
        int length = str.length();
        if(length>start && length<end){
            return true;
        }
        return  false;
    }

    /***
     *
     * 密码必须包含字母和数字
     * @param str
     */
    public static boolean mustNumAndLetter(String str){
        String regex3 = "(?=.*[a-zA-Z])(?=.*\\d).*";
        return str.matches(regex3);
    }

    /***
     *
     * str长度大于等于n
     * @param n
     */
    public static boolean lengthGE(String str ,int n){
        String regex = "^.{"+n+",}$";
        return str.matches(regex);
    }



    // 强：包含数字、大写字母、小写字母、符号
    public static boolean getStrong(String password) {
        String regex_06 = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@#$%^&+=]).+$";
        return password.matches(regex_06);
    }

    // 中：包含数字和字母；
    public static boolean getMedium(String password) {
        String regex_05 = "^[a-zA-Z0-9]+$";
        return password.matches(regex_05);
    }   

    // 弱：只有字母/只有数字；
    public static boolean getWeak(String password) {

        String regex_03 = "^[a-zA-Z]+$";
        String regex_04 = "^[0-9]+$";

        return password.matches(regex_03) || password.matches(regex_04);
    }

   
}
